package daten;

import java.util.Vector;

public class Professor extends Person {

	  private Fachgebiet fachgebiet;
	  
	  private Vector<Diplomarbeit> betreuteDiplomarbeiten = new Vector<Diplomarbeit>();

	  public Professor() 
	  {  }
	  
	  public Professor(String vorname,String nachname)
	  {
		this.setVorname(vorname);
	    this.setNachname(nachname);
	  }

	  public Professor(String vorname,String nachname, Fachgebiet fachgebiet)
	  {
		this(vorname,nachname);
		setFachgebiet(fachgebiet);
	  }

	  public Fachgebiet getFachgebiet() {
		return fachgebiet;
	  }

	  public void setFachgebiet(Fachgebiet fachgebiet) {
		this.fachgebiet = fachgebiet;
	  }

	  public void setFachgebiet(String fachgebiet) {
			for(Fachgebiet fg: Fachgebiet.values()){
				if (fg.value().equals(fachgebiet))
				{
					setFachgebiet(fg);
					return;
				}
			}
			System.out.println("Fachgebiet: Unueltige Eingabe");
	  }

	  public Diplomarbeit getlinkBetreuteDiplomarbeiten(int pos) {
	      return betreuteDiplomarbeiten.elementAt(pos);
	  }

	  public void setlinkBetreuteDiplomarbeiten(Diplomarbeit diplomarbeit) {
		  if (!betreuteDiplomarbeiten.contains(diplomarbeit))
		  {
			betreuteDiplomarbeiten.addElement(diplomarbeit);
			diplomarbeit.setlinkBetreuer(this);
		  }
	  }

	  public void unlinkBetreuteDiplomarbeiten(Diplomarbeit diplomarbeit) {
		  if(betreuteDiplomarbeiten.removeElement(diplomarbeit))
			  diplomarbeit.unlinkBetreuer();
	  }
	  
	  public int getSizeBetreuteDiplomarbeiten() {
		  return betreuteDiplomarbeiten.size();
	  }

	  public String toString()
	  {
		return getNachname() + ", " + getVorname();
	  }
	  
	  public boolean equals (Object o){
		  if (o instanceof Professor){
			  Professor p = (Professor) o;
			  if ((getNachname().equals(p.getNachname())) && (getVorname().equals(p.getVorname()))){
				  return true;
			  }
		  }
		  return false;
	  }

}
